package org.example.controller.SpringBoot300.miusi;

import org.example.util.file.FileUtil;
import org.example.util.log.Logac;
import org.example.util.video.VideoMp4Util;

import java.io.IOException;
import java.util.List;
import java.util.Random;

/**
 * @auther admin闫
 * @Descriptopn
 * @date 2024/4/11 18:13
 */
public class BeiJingMius {


    public static void main(String[] args) {

        String out="H:\\短视频工作目录\\背景音乐列表";
        List<String> allDGFiles1 = FileUtil.getAllDGFiles("H:\\短视频工作目录\\视频列表");
        Logac.log(allDGFiles1.size()+"");
        int sss=0;
        for (String s : allDGFiles1) {
            int videoTime = VideoMp4Util.getVideoTime(s);
            if (videoTime<10){
                throw new RuntimeException("");
            }

            String mp3 = "";
            while (true) {
                String s1 = rundemMp3();
                int videoTime1 = VideoMp4Util.getVideoTime(s1);
                if (videoTime1 < videoTime + 5) {
                    // 视频长度小于指定长度加上5秒，则继续寻找
                } else {
                    mp3 = s1;
                    sss++;
                    break;
                }
            }
            String fileName = FileUtil.getFileName(s);
            String filenameWithoutExtension = fileName.substring(0, fileName.length()-4);
            String s1 = removeSpace(filenameWithoutExtension);
            System.out.println(filenameWithoutExtension);
            try {
                VideoMp4Util.cutAudio(videoTime, mp3, out + "\\" + s1 + ".mp3");
            } catch (IOException e) {
                Logac.log(e.getMessage());
            } catch (InterruptedException e) {
                Logac.log(e.getMessage());
            }
        }
        System.out.println(sss);

    }


    public static String removeSpace(String filename) {
        return filename.replaceAll("\\s+", ""); // 使用正则表达式去掉所有空格
    }
    public static String removeExtension(String filename) {
        // 查找最后一个 "." 的索引位置
        int lastDotIndex = filename.lastIndexOf('.');
        // 如果存在 "." 并且不在开头，则截取文件名
        if (lastDotIndex != -1 && lastDotIndex != 0) {
            return filename.substring(0, lastDotIndex);
        } else {
            return filename; // 如果没有找到后缀，则返回原始文件名
        }
    }





    //初始化背景音乐目录
    public static List<String> mp4= FileUtil.getAllDGFiles("H:\\毕业设计工作目录\\batch_processing\\batch_processing\\mp3background");


    /**
     * 随机抽取背景音乐
     * @return 背景音乐地址
     */
    public static String rundemMp3(){
        Random ran1 = new Random();
        // 生成一个介于0到12之间的随机数
        int r1 = ran1.nextInt(10); // nextInt 方法生成的随机数范围是[0, n)

        if (r1>5){
            return "H:\\毕业设计工作目录\\batch_processing\\batch_processing\\mp3background\\long123456.MP3";
        }else {
            // 创建一个 Random 对象
            Random random = new Random();
            // 生成一个介于0到12之间的随机数
            int randomNumber = random.nextInt(11); // nextInt 方法生成的随机数范围是[0, n)
            String s = mp4.get(randomNumber);
            return s;
        }

    }
}
